#include <iostream>
using namespace std;
// class A
// {

// public:
//     A(const A &) = delete;
//     A &operator=(const A &) = delete;

//     static A &getInstance()
//     {
//         return _a;
//     }
//     int getData()
//     {
//         return _data;
//     }

// private:
//     static A _a;
//     int _data;
// private:
//     A():_data(1)
//     {
//         std::cout << _data << "单例对象实例化成功!" << std::endl;
//     }
//     ~A() {
//         std::cout << "单例对象析构成功!" << endl;
//     };
// };
// A A::_a;

class B
{

public:
    B(const B &) = delete;
    B &operator=(const B &) = delete;

    static B &getInstance()
    {
        static B _b;
        return _b;
    }
    int getData()
    {
        return _data;
    }

private:
    B():_data(1)
    {
        std::cout << _data << "单例对象实例化成功!" << std::endl;
    }
    ~B() {
        std::cout << "单例对象析构成功!" << endl;
    };
private:
    int _data;
};

int main()
{
    // cout << A::getInstance().getData() << endl;
    cout << B::getInstance().getData() << endl;
}